const ROOT_URL = "http://127.0.0.1:9100";

const API_GET_COMMODITY_LIST = "";
const API_GET_COMMODITY_DETAIL = "";
const API_GET_SHOP_CART_LIST = "";
const API_ADD_TO_SHOP_CART = "";
const API_GET_CAR_TYPES = "/get_carTypes";
const API_GET_REPAIR_POSITION = "/get_repairPosition";
const API_GET_PARTS_TYPES = "/get_partsTypes";
const API_GET_All_GOODS = "/get_all_goods";

const CODE_SUCCESS = 0;
const CODE_FAILED = 1;

module.exports = {
  getCarTypes: getCarTypes,
  getRepairPosition: getRepariPosition,
  getPartsTypes: getPartsTypes,
  getAllGoods: getAllGoods
}


/***
 * 获取所有商品
 * @param success 请求code为CODE_SUCCESS时调用
 * @param failed 请求code为CODE_FAILED时调用
 * @param error 请求fail时调用
*/
function getAllGoods(success, failed, error) {
  get(ROOT_URL + API_GET_All_GOODS, {}, success, failed, error);
}

/***
 * 获取配件种类
 * @param success 请求code为CODE_SUCCESS时调用
 * @param failed 请求code为CODE_FAILED时调用
 * @param error 请求fail时调用
*/
function getPartsTypes(success, failed, error) {
  get(ROOT_URL + API_GET_PARTS_TYPES, {}, success, failed, error);
}

/***
 * 获取维修点
 * @param success 请求code为CODE_SUCCESS时调用
 * @param failed 请求code为CODE_FAILED时调用
 * @param error 请求fail时调用
*/
function getRepariPosition(success, failed, error) {
  get(ROOT_URL + API_GET_REPAIR_POSITION, {}, success, failed, error);
}


/***
 * 获取汽车种类
 * @param success 请求code为CODE_SUCCESS时调用
 * @param failed 请求code为CODE_FAILED时调用
 * @param error 请求fail时调用
*/
function getCarTypes(success, failed, error){
  get(ROOT_URL + API_GET_CAR_TYPES, {}, success, failed, error);
}

/***
 * 微信request封装
 * 
 * @param url 请求的url地址
 * @param data 请求的data参数
 * @param method 请求方法
 * @param success 请求code为CODE_SUCCESS时调用
 * @param failed 请求code为CODE_FAILED时调用
 * @param error 请求fail时调用
 * 
*/
function __request(url, data, method, success, failed, error) {
  wx.request({
    url: url,
    data: data,
    method: method,
    success: res => {
      console.log("request url:" + url);
      console.log("request method:" + method);
      if (res.data.code == CODE_SUCCESS) {
        console.log("code success, result:", res.data);
        if (success != null) {
          success(res);
        }
      } else {
        console.log("code fail, result:", res.data);
        if (failed != null) {
          failed();
        }
      }
    },
    fail: () => {
      console.log("request url:" + url);
      console.log("request method:" + method);
      console.log("request fail");
      if (error != null) {
        error();
      }
    }
  })
}

/***
 * post请求
 * 
 * @param url 请求的url地址
 * @param data 请求的data参数
 * @param success 请求code为CODE_SUCCESS时调用
 * @param failed 请求code为CODE_FAILED时调用
 * @param error 请求fail时调用
 * 
*/
function post(url, data, success, failed, error){
  __request(url, data, "POST", success, failed, error);
}

/***
 * get请求
 * 
 * @param url 请求的url地址
 * @param data 请求的data参数
 * @param success 请求code为CODE_SUCCESS时调用
 * @param failed 请求code为CODE_FAILED时调用
 * @param error 请求fail时调用
 * 
*/
function get(url, data, success, failed, error) {
  __request(url, data, "GET", success, failed, error);
}